package com.yyplatform.admin.platform.generator.utils;

/**
 * Created on 2024-09-23
 */
public class NameUtils {

    public static String toCamelCase(String input) {
        if (input == null) {
            return null;
        }

        String[] parts = input.split("_");
        StringBuilder result = new StringBuilder();

        // 过滤空字符串（处理连续下划线的情况）
        for (int i = 0; i < parts.length; i++) {
            if (parts[i].isEmpty()) {
                continue;
            }

            if (result.length() == 0) {
                // 第一个单词全小写
                result.append(parts[i].toLowerCase());
            } else {
                // 后续单词首字母大写，其余小写
                result.append(Character.toUpperCase(parts[i].charAt(0)));
                if (parts[i].length() > 1) {
                    result.append(parts[i].substring(1).toLowerCase());
                }
            }
        }

        return result.toString();
    }

    // 可选：转换为大驼峰（帕斯卡命名法）
    public static String toPascalCase(String input) {
        String camelCase = toCamelCase(input);
        if (camelCase.isEmpty()) {
            return "";
        }
        return Character.toUpperCase(camelCase.charAt(0)) + camelCase.substring(1);
    }


}
